package com.sg.dto.biz.pbff.common;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;


/**
 * @desc BffConfSchemeDto
 * @使用场景
 */
@Data
public class BffConfSchemeDto implements Serializable {

    /**
     * 配置方案ID
     */
    @ApiModelProperty("配置方案ID ")
    private String confSchemeId;

    /**
     * 配置方案标识
     */
    @ApiModelProperty("配置方案标识")
    private String confSchemeCode;

    /**
     * 配置方案名称
     */
    @ApiModelProperty("配置方案名称")
    private String confSchemeName;

    /**
     * 应用对象类型 TENANT_SPACE:租户空间 ORG:组织 EVA_THEME:评价主题 EVA_TEMP:评价模板
     */
    @ApiModelProperty("应用对象类型")
    private String applObjType;

    /**
     * 方案类型编码 BASE_APP:基础应用 CORE_APP:核心应用 ENHANCE_APP:增强应用 PLUG_IN_APP:插件应用
     */
    @ApiModelProperty("方案类型编码")
    private String confSchemeTypeCode;

    /**
     * 是否初始方案 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否初始方案")
    private String isInitialScheme;

    /**
     * 授权类型 CYCLE_TIME:周期时间型 FIXED_TIME:固定时间型 QUANTITY:数量型
     */
    @ApiModelProperty("授权类型")
    private String authType;
    /**
     * 是否存档 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否存档")
    private String isArchive;

    /**
     * 生命周期状态 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("生命周期状态")
    private String subjectLifeCycle;

    /**
     * 操作人就职记录ID
     */
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 个人账号ID
     */
    @ApiModelProperty("个人账号ID")
    private String userId;

    /**
     * 真实头像
     */
    @ApiModelProperty("真实头像")
    private String userFace;

    /**
     * 真实姓名
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 用户昵称
     */
    @ApiModelProperty("用户昵称")
    private String nickName;

    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operationTime;
    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;
    /**
     * 授权数量
     */
    @ApiModelProperty("授权数量")
    private Long authorizationNum;

    /**
     * 授权单位 YEAR:年 A:个 COVER:套
     */
    @ApiModelProperty("授权单位")
    private String authUnit;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        BffConfSchemeDto that = (BffConfSchemeDto) o;
        return confSchemeId == that.confSchemeId && confSchemeCode == that.confSchemeCode && confSchemeName == that.confSchemeName && applObjType == that.applObjType && confSchemeTypeCode == that.confSchemeTypeCode && isInitialScheme == that.isInitialScheme && authType == that.authType && isArchive == that.isArchive && subjectLifeCycle == that.subjectLifeCycle && operationInductionId == that.operationInductionId && userId == that.userId && userFace == that.userFace && idCardName == that.idCardName && nickName == that.nickName && operationTime == that.operationTime && operateTime == that.operateTime && authorizationNum == that.authorizationNum && authUnit == that.authUnit;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), confSchemeId, confSchemeCode, confSchemeName, applObjType, confSchemeTypeCode, isInitialScheme, authType, isArchive, subjectLifeCycle, operationInductionId, userId, userFace, idCardName, nickName, operationTime, operateTime, authorizationNum, authUnit);
    }


}
   